This application relates to a Basic Input/Output System (BIOS) of a computer system, and more particularly to a method of configuring BIOS performance profiles for the computer system.
In a typical computer system (e.g., a rack server in a data center), a BIOS software program is stored on a BIOS chip located on a motherboard of the computer system. The BIOS stores firmware executed when the computer system is first powered on along with a set of configurations specified for the BIOS. The BIOS firmware and BIOS configurations are stored in a non-volatile memory such as a non-volatile random-access memory (NVRAM) or a read-only memory (ROM). The BIOS typically recognizes, initializes, and tests hardware present in a given computing system based on the set of configurations. The BIOS then gives control of the computer system to an operating system (OS). The BIOS provides an interface that allows a variety of different parameters to be set. For example, the BIOS can be used to specify clock and bus speeds, specify what peripherals are attached to the computer system, specify monitoring of health (e.g., fan speeds and CPU temperature limits), and specify a variety of other parameters that affect overall performance and power usage of the computer system.
Servers can be used by different data centers with different computing needs. For example, some servers are configured with an emphasis on power savings to reduce energy bills and heat management for a data center. In another example, other servers are configured with an emphasis on performance, regardless of power use, for use in high performance computing (HPC). For optimized operation, the servers for power savings can require a very different BIOS configuration than servers for high performance computing.
However, typical servers are preloaded with a single BIOS default configuration that cannot be optimal for the differing needs of the customers. In addition, BIOS configurations for servers are often complicated and can be closely tied to hardware combinations in each server. Traditionally, an administrator needs a human-to-machine interface and an OS application to select BIOS configurations for servers, which limits initial configurations of the servers.